package com.yuexunxinxi.carefree.service.b_tweet;

import com.yuexunxinxi.carefree.entity.BTweet;
import com.yuexunxinxi.carefree.entity.vo.BTweetVo;

import java.util.List;

/**
 * 作者: 李咨辰
 * 文件名: BTweetService.java
 * 路径: com.yuexunxinxi.carefree.service.tweet
 * 时间: 2024-10-23 12:23
 * 版本: 1.0
 * 描述: TODO 文章/推文
 **/
public interface BTweetService {

    /**
     * 根据当前登录用户和城市获取推文数量
     *
     * @param city 城市编号
     * @return 文章列表
     */
    Long getTweetTotalByCity(String city);

    /**
     * 根据当前登录用户和城市获取推文
     *
     * @param userId   用户编号
     * @param city     城市编号
     * @param current  当前页
     * @param pageSize 没有条数
     * @return 文章列表
     */
    List<BTweetVo> getTweetByCity(Long userId, String city, int current, int pageSize);

    /**
     * 发布文章
     *
     * @param bTweet 文章对象
     * @return 成功大于1
     */
    boolean addTweet(BTweet bTweet);

    /**
     * 根据关注信息获取论坛调试
     *
     * @param userId 当前登录用户id
     * @return 关注的论坛条数
     */
    Long getTweetTotalByFollow(Long userId);

    /**
     * 根据关注信息获取推文
     *
     * @param userId 用户编号
     * @return 文章列表
     */
    List<BTweetVo> getTweetByFollow(Long userId, int current, int pageSize);


    /**
     * 获取论坛总条数
     *
     * @return 总条数
     */
    Long getTweetAllTotal();


    /**
     * 获取论坛推荐数据
     *
     * @param userId   当前登录用户编号
     * @param current  当前页
     * @param pageSize 每页条数
     * @return 论坛列表
     */
    List<BTweetVo> getTweetAllList(Long userId, int current, int pageSize);

    /**
     * 根据用户编号获取用户发布的文章总数
     *
     * @param userId 文章编号
     * @return 文章总数
     */
    Integer getTweetTotalByUserId(Long userId);

    /**
     * 根据用户编号获取用户发布的所有文章
     *
     * @param userId   用户编号
     * @param current  当前页码
     * @param pageSize 每页条数
     * @return 文章列表
     */
    List<BTweetVo> getTweetByUserId(Long userId, Integer current, Integer pageSize);
}
